package stu.day33_day38.day34;

import java.util.HashMap;

public class hw2 {

    public static String minWindow(String s, String t) {
        HashMap<Character,Integer> map = new HashMap<>();
        for(int i=0;i<t.length();i++){
            int num = map.getOrDefault(t.charAt(i),0);
            map.put(t.charAt(i),num+1);
        }
        int r=0;
        int left = 0;
        int right = 0;
        int min=Integer.MAX_VALUE;

        for(int i=0;i<s.length();i++){
            if(map.containsKey(s.charAt(i))){
                int num = map.get(s.charAt(i));
                map.put(s.charAt(i),num-1);
            }

            while(del(map)){
                if((i-r+1)<min){
                    left = r;
                    right = i;
                    min = i-r+1;
                }

                if(map.containsKey(s.charAt(r))){
                    int num = map.get(s.charAt(r));
                    map.put(s.charAt(r),num+1);
                }
                r += 1;
            }
        }

        return min==Integer.MAX_VALUE?"":s.substring(left,right);


    }


    public static boolean del(HashMap<Character,Integer> map ){
        for(Character ch:map.keySet()){
            if(map.get(ch)>0){
                return false;
            }
        }
        return true;
    }


}
